{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1dedd493",
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys  \n",
    "sys.path.append('../')\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import json\n",
    "from datetime import datetime\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "2e389a59",
   "metadata": {},
   "outputs": [],
   "source": [
    "# folder1 = '../results/000p_r_filter/2'\n",
    "# folder2 = '../results/000p_r_filter/3'\n",
    "# folder2 = '../../contrast-phys/results/000p_r_filter/1'\n",
    "\n",
    "folder1 = '../results/default/1'\n",
    "folder2 = '../results/default/1'\n",
    "# folder2 = '../../contrast-phys/joint_results/default/1'\n",
    "\n",
    "with open(folder1+'/metrics.json') as f:\n",
    "    metrics1 = json.load(f)\n",
    "\n",
    "with open(folder2+'/metrics.json') as f:\n",
    "    metrics2 = json.load(f)\n",
    "    \n",
    "with open(folder1+'/config.json') as f:\n",
    "    config1 = json.load(f)\n",
    "    \n",
    "with open(folder2+'/config.json') as f:\n",
    "    config2 = json.load(f)\n",
    "\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "504a21f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "def es(series, alpha):\n",
    "    \"\"\"given a series and alpha, return series of expoentially smoothed points\"\"\"\n",
    "    results = np.zeros_like(series)\n",
    "\n",
    "    # first value remains the same as series,\n",
    "    # as there is no history to learn from\n",
    "    results[0] = series[0] \n",
    "    for t in range(1, series.shape[0]):\n",
    "        results[t] = alpha * series[t] + (1 - alpha) * results[t - 1]\n",
    "\n",
    "    return results\n",
    "\n",
    "def get_time(t):\n",
    "    time_list = []\n",
    "    for _ in t:\n",
    "        time_list.append(datetime.strptime(_,\"%Y-%m-%dT%H:%M:%S.%f\"))\n",
    "    \n",
    "    sec_list = []\n",
    "    for _ in time_list:\n",
    "        sec_list.append((_-time_list[0]).total_seconds())\n",
    "    return sec_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "2466d312",
   "metadata": {},
   "outputs": [],
   "source": [
    "loss_values1 = np.array(metrics1['ipr']['values'])\n",
    "loss_values2 = np.array(metrics2['ipr']['values'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "338d3b58",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plt.plot(es(loss_values1, 0.1), label='1')\n",
    "plt.plot(es(loss_values2, 0.001), label='2')\n",
    "plt.plot(es(loss_values1, 0.001), label='1')\n",
    "\n",
    "\n",
    "\n",
    "plt.legend()\n",
    "# plt.xlim(0, 150000)\n",
    "# plt.ylim(0,0.1)\n",
    "# plt.ylim(-1,-0.75)\n",
    "plt.grid('on')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "152d6a0d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12.343333333333334"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmin(es(np.array(metrics2['ipr']['values']), 0.001)) / len(metrics2['ipr']['values']) *30 -1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dc47e6a8",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.18 64-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  },
  "vscode": {
   "interpreter": {
    "hash": "4ac2badf7299eb6ac99d31f0ab8b684f83d4ad3e67fea4f914cbd902af47105b"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
